This invention relates to telecommunications systems, and, in particular, a system and method for searching and verifying a database of records, typically call records, generated during the testing of a telecommunications network after software or hardware updates, or both, have been applied to the telecommunications system.
Typically, new services to be implemented in a telecommunications network are tested in a mock network testbed before implementation in a production network. Untested software or hardware updates to a functioning production telecommunications system could cause disastrous results if those updates contain software or hardware bugs. The network testbed is designed to emulate the production telecommunications network as closely as possible. During testing, the many heterogeneous devices in the network create call records which simulate the type and volume of call records which would be generated by the actual network. This stream of call records from the test network offers a valuable audit of network operation. It is necessary to collect these records, store them, and allow easy access to them so they may be analyzed for information about the state of the system. Realistic testing will generate a high volume and high-speed flow of call records. It is important that the verification system catch all incoming records.
Thus a system is required for receiving a high-speed stream of call records in a test network and efficiently organizing and storing the records for verification access. The present invention is designed and optimized for receiving and analyzing multiple data streams, such as call records, from a testbed telecommunications network. Although the preferred embodiment of the invention described below discloses a use of the invention for the processing of call records in a telecommunications system, it should be realized that the invention may be used to process incoming data streams other than call records.
These and other features and advantages are accomplished in the system and method for call record search and verification disclosed in this application. In general, multiple instances of collecting and decoding processes embodied in stored programs running in a computer system act upon blocks of incoming data to store both a raw image of the received data and a pre-parsed version of the data suitable for database searching and retrieval. Three-step partitioned processing is disclosed comprising a set of collector processes for collecting data records, a set of decoder processes for decoding and parsing such records, and a set of loader processes for loading records into a database. A client can request certain call records or request verification of certain records. A rules mechanism embodied in stored templates operates to link client requests to asynchronously received data. The system provides data to a client in minimal time, regardless of when data becomes available.
In general, a computer software system for receiving, storing, analyzing and optionally filtering multiple data streams, and for retrieving and verifying data records from the data streams, comprises at least one processor executing a sequence of instructions embodied in a computer-readable medium. The system further comprises:
A service manager process executing asynchronously for starting and stopping all system processes; at least one collector process executing asynchronously for collecting data records from the data streams and placing the data records in a record queue; and, a store of one or more first pre-determined templates. The first pre-determined templates contain rules for filtering and parsing the data records. At least one decoder process asychronously parses data records in the record queue according to the first predetermined templates and stores such parsed records. At least one loader process asychronously loads the stored parsed data records into a database. The system has at least one asynchronous client manager process for accepting verification requests for data records from a client, acknowledging such requests, and placing such requests in a request queue. A store of one or more second pre-determined templates is provided; the second templates contain rules for finding and verifying data records.
At least one verification request processing process asynchronously reads requests from the request queue, reads requested data records from the database according to the second pre-determined templates, stores the requested data records, and stores requests for which no data records are yet available. The system also has an asynchronous query refresh futures process which reads the stored requests for which no data records are yet available and places on the request queue those requests for data records which require a retry.